/**
 * 
 */
package com.ordobill.remote.communication.resource;

/**
 * @author Choi Jin Wook(A.K.A Brian Choi @ Ordobill Office) / choijinwook84@gmail.com
 *
 */
public class CommunicationResource {
    
    //호스트 서버 이름(Domain name or IP Address)
    private String hostName;
    
    //호스트 서버의 포트
    private int    hostPort;
    
    //암호화 모드
    private String encryptionMode;
    
    //사용자 이름
    private String userName;
    
    //사용자 비밀번호
    private String userPw;
    
    //문자 코드 셋
    private String characterCodeSet;
    
    //passive or active default active:false
    private boolean transmissionMode;
    
    //다운로드 장소 Path
    private String targetPathName;
    
    //다운로드 파일 이름
    private String targetFileName;
    
    //원격서버의 대상 파일장소의 Path
    private String objectPathName;
    
    //원격서버의 파일 이름
    private String objectFileName;

    /**
     * 생성자 
     */
    public CommunicationResource() { }

    /**
     * 호스트 서버 이름 엑세서 입니다.
     * @return the hostName
     */
    public String getHostName() {
        return hostName;
    }

    /**
     * 호스트 서버 포트 엑세서 입니다.
     * @return the hostPort
     */
    public int getHostPort() {
        return hostPort;
    }

    /**
     * 암호화 모드 엑세서 입니다.
     * @return the encryptionMode
     */
    public String getEncryptionMode() {
        return encryptionMode;
    }

    /**
     * 로그인 ID 엑세서 입니다.
     * @return the userName
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 사용자 비밀번호 엑세서 입니다.
     * @return the userPw
     */
    public String getUserPw() {
        return userPw;
    }

    /**
     * 문자셋 엑세서 입니다.
     * @return the characterCodeSet
     */
    public String getCharacterCodeSet() {
        return characterCodeSet;
    }

    /**
     * 전송 모드 엑세서 입니다.
     * @return the transmissionMode
     */
    public boolean isTransmissionMode() {
        return transmissionMode;
    }

    /**
     * 원격서버의 대상 파일이 저장될 로컬 컴퓨터의 다운로드 장소 위치의 엑세서 입니다.
     * @return the pathName
     */
    public String getTargetPathName() {
        return targetPathName;
    }

    /**
     * 저장될 로컬 컴퓨터의 파일 이름에 대한 엑세서 입니다.
     * @return the targetFileName
     */
    public String getTargetFileName() {
        return targetFileName;
    }

    /**
     * 원격서버의 대상 파일이 존재하는 경로(Path)의 엑세서 입니다.
     * @return the objectPathName
     */
    public String getObjectPathName() {
        return objectPathName;
    }

    /**
     * 원격서버의 대상 파일 이름에 대한 엑세서 입니다.
     * @return the objectFileName
     */
    public String getObjectFileName() {
        return objectFileName;
    }
    
    /**
     * 접속하고자 하는 곳의 URL을 저장합니다.
     * @param hostName 호스트 서버 URL을 입력합니다.
     */
    public void setHostName(String hostName) {
        this.hostName = hostName;
    }

    /**
     * 접혹하고자 하는 곳의 Port가 기본 포트가 아닐 경우 포트번호를 입력합니다.
     * @param hostPort 호스트 서버의 통신 포트를 입력합니다. 
     */
    public void setHostPort(int hostPort) {
        this.hostPort = hostPort;
    }

    /**
     * 암호화 모드를 설정을 합니다.
     * @param encryptionMode the encryptionMode to set
     */
    public void setEncryptionMode(String encryptionMode) {
        this.encryptionMode = encryptionMode;
    }
    
    /**
     * 호스트 서버에서 로그인 할 수 있는 ID를 입력합니다.
     * @param userName 호스트 서버에서 로그인 할 ID를 입력합니다.
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 호스트 서버에서 로그인 할 수 있는 Password를 입력합니다.
     * @param userPw 호스트 서버에서 로그인 할 Password를 입력합니다.
     */
    public void setUserPw(String userPw) {
        this.userPw = userPw;
    }

    /**
     * 문자셋을 지정합니다.
     * @param characterCodeSet 문자셋을 저장합니다.
     */
    public void setCharacterCodeSet(String characterCodeSet) {
        this.characterCodeSet = characterCodeSet;
    }

    /**
     * 전송모드를 선택합니다.
     * <br />
     * 
     * <p>
     *   <pre>
     *     false(default) - 기본 또는 능동(Active)으로 작동합니다.
     *     true           - 수동모드(Passive)로 작동합니다.
     *   </pre>
     * </p>
     * @param transmissionMode the transmissionMode to set
     */
    public void setTransmissionMode(boolean transmissionMode) {
        this.transmissionMode = transmissionMode;
    }

    /**
     * 원격서버의 대상 파일이 저장될 로컬 컴퓨터의 다운로드 장소를 저장합니다.
     * @param targetPathName 원격버서의 경로(Path)를 저장합니다.
     */
    public void setTargetPathName(String targetPathName) {
        this.targetPathName = targetPathName;
    }
    
    /**
     * 저장될 로컬 컴퓨터의 파일 이름을 저장합니다.
     * @param targetFileName the targetFileName to set
     */
    public void setTargetFileName(String targetFileName) {
        this.targetFileName = targetFileName;
    }
    
    /**
     * 원격서버의 대상 파일이 존재하는 경로(Path)를 저장합니다.
     * @param objectPathName 원격버서의 경로(Path)를 저장합니다.
     */
    public void setObjectPathName(String objectPathName) {
        this.objectPathName = objectPathName;
    }
    
    /**
     * 원격서버의 대상 파일의 이름을 저장합니다.
     * @param objectFileName the objectFileName to set
     */
    public void setObjectFileName(String objectFileName) {
        this.objectFileName = objectFileName;
    }    

}
